iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
Claude AI

用 AI Agent 撰寫長篇技術系列文章系列 第 2

Day 01:為什麼傳統的「一鍵生成」寫不出好的長篇技術文章?

  • 分享至 

  • xImage
  •  

在 《Day 00:用 AI Agent 撰寫長篇技術系列文章:35 天鐵人賽規劃》 中,我們拋出了一句直白的定調:傳統的「一鍵生成」只會產出結構鬆散、充斥 AI 腔調且錯誤百出的垃圾資訊。

如果你有實際工程背景,這句話大概不陌生。你可能已經試過把「幫我寫一篇關於某個技術主題的文章,字數 3000 字」丟進 ChatGPT 或 Claude,看著它在幾秒內吐出一篇標題、小標、條列、程式碼區塊一應俱全的文章。乍看之下完成度很高,但讀完前幾段,你開始皺眉。哪裡怪,你可能一時說不上來,只覺得像是有人模仿你熟悉的技術寫作語氣,模仿得七八分像,卻在某些地方露出破綻。

今天要做的事,是把這句定調從「斷言」變成「可驗證的結論」,把皺眉的原因從模糊的感覺,拆成四個具體、可觀察、可重現的機制性問題。

開場:把一鍵生成的失敗攤開來看

先把靶心畫清楚。這裡說的「一鍵生成」,指的是一種特定的工作模式:人類下一段描述主題與大致要求的 Prompt,模型在單一次推理中,從標題到結尾一次性吐出完整文章,人類拿到成品,頂多做些微修改就直接使用。

這和「AI 輔助寫作」是兩種截然不同的工作方式。AI 輔助寫作是人類主導、AI 分段協作,每一步都有人類介入檢查;一鍵生成則是把整個創作過程壓縮成單一次的模型呼叫,期待它一次到位,中途沒有任何檢查點。

核心論點是這樣的:一鍵生成這個工作模式本身,從架構上就注定無法產出高質量的長篇技術文章,根源出在架構設計,而非模型不夠聰明。這句話呼應且深化了 Day 00 的定調,也是接下來四個小節要逐一證明的主張。你可能會直覺反駁,如果 Prompt 寫得更精準、更詳細,一鍵生成是不是就能解決?這個直覺很合理,但接下來會看到,四個致命傷的根源都出在任務設計本身的結構性缺陷,光靠「用詞更精準」無法解決。

致命傷一:注意力稀釋

長篇技術文章需要同時處理兩種性質完全不同的認知任務。第一種是宏觀邏輯推理,處理整篇文章的論述順序是否合理,前後段落是否呼應,讀者的認知負擔是否被妥善鋪陳。第二種是微觀細節查證,處理某個函式的參數名稱是否正確,某段程式碼是否真的可執行,某個版本號對應的語法是否已經過時。

這兩種任務需要的思考模式截然不同。宏觀推理接近編輯在審視全文架構,微觀查證接近工程師在逐行核對語法。當你要求模型在單一次生成中同時處理這兩件事,模型的注意力會被迫在「顧全局」與「摳細節」之間反覆切換。實務上常見的結果,是模型傾向犧牲微觀細節、保全宏觀結構,因為維持文章通順讀起來的代價,遠比逐行驗證語法正確性來得低。

一個具體的畫面,Laravel 從舊版的 Route::get 搭配 Controller 陣列語法,演進到現在慣用的 Invokable Controller 與 Route Model Binding,Eloquent 的關聯查詢寫法也累積了好幾種語法糖並存的階段。如果你要求模型一鍵生成一篇「Laravel API 資源路由完整教學」,很可能拿到一篇章節安排合理、從基礎到進階層層推進、讀起來邏輯順暢的文章,但攤開裡面的程式碼範例,會發現舊版 Route::get('/users/{id}', 'UserController@show') 這種字串型別的 Controller 語法,和新版 Route::get('/users/{user}', [UserController::class, 'show']) 這種陣列型別加上 Route Model Binding 的寫法混在同一篇文章裡,甚至出現在同一個範例中互相矛盾地並存。文章的骨架完整,但骨架裡填的細節站不住腳。

模型顯然有能力寫出通順的文章結構,也顯然「知道」兩種 Route 寫法各自長什麼樣子,這代表能力本身並非瓶頸。根本原因在於任務設計本身違反了認知負荷的基本原則,把兩種需要不同思考模式的工作,硬塞進同一次推理裡同時要求兼顧。

致命傷二:內容漂移

如果你曾經要求模型一次生成一篇很長的文章,可能會注意到一個現象,文章前半段和後半段像是換了一個人寫的。

具體來說,前三段可能還維持著資深工程師的口吻,直言不諱地給出技術選型建議,甚至帶點個人立場;寫到第八段、第九段,語氣卻悄悄退化成「總而言之」、「值得注意的是」這類制式套話。技術深度預設也會前後不一致,前段假設讀者已經熟悉某個先備知識,直接跳過基礎解釋,後段卻又毫無理由地從頭定義一遍同一個概念,彷彿完全忘記前面已經交代過。

這種現象的機制性原因,出在模型生成長文本的方式。越接近生成的尾端,前段內容在整個上下文中所佔的相對權重就越被稀釋,模型逐漸退回訓練資料中最常見、最保守的預設寫作模式,逐漸偏離一開始被設定的風格與深度。一鍵生成的整個過程只有一次呼叫,沒有中途檢查點,自然也就沒有任何回頭校正這種漂移的機制。

這個問題對單篇文章已經是麻煩,但把場景換成「連續 30 天不間斷產出系列文章」,殺傷力會被放大到另一個層級。單篇內部前後漂移,讀者頂多覺得這篇文章讀起來不太統一;但如果每一天的文章都是各自獨立的一次生成,沒有任何機制讓今天的產出去承接昨天設定的語氣、深度與已經解釋過的概念,35 天累積下來,整個系列讀起來會像是由好幾個風格迥異的作者輪流代筆,離散程度只會越滾越大,完全不會自己收斂。

致命傷三:事實幻覺

技術文章最致命的問題,是模型會用非常肯定的語氣,寫出完全錯誤或已經過時的技術細節。

一個具體的例子,Kotlin 協程從早期版本演進到現在的過程中,GlobalScope.launch 這種直接在全域範圍啟動協程的寫法,早已被官方明確列為不建議使用的反模式,取而代之的是搭配 viewModelScope 或自訂 CoroutineScope 搭配 SupervisorJob 的結構化並發做法。但模型的訓練資料裡混雜著新舊版本的大量教學文章與 Stack Overflow 討論串。如果你要求模型一鍵生成一篇「Kotlin 協程入門教學」,它有相當機率會拼湊出一段呼叫 GlobalScope.launch 的範例程式碼,語氣描述得跟呼叫任何正常方法一樣自然,完全沒有任何遲疑或但書提示這個寫法早已是官方不建議使用的反模式。自信程度和正確程度完全不成正比,這種反差正是事實幻覺最讓人措手不及的地方。

根本原因在於,一鍵生成完全依賴模型的訓練記憶,整個生成流程裡沒有任何一個步驟要求模型去驗證「這個知識點是否已經過時」。對於變化快速的技術領域而言,這等於是拿讀者的信任去賭一個機率,賭這個函式簽章、這個指令參數,剛好沒有隨版本更新而改變。多數時候,這個賭注會輸,而讀者往往要等到自己動手執行、程式報錯的那一刻,才會發現文章裡那段語氣篤定的範例其實早就過時了。

致命傷四:零容錯結構

假設你已經拿到一篇一鍵生成的長文,讀到中段才發現某個程式碼範例是錯的。這時你只剩下兩個選擇。第一個選擇,自己動手修正這一段,但這等於還是得逐字逐句校對整篇文章,用 AI 加速寫作的初衷已經名存實亡。第二個選擇,要求模型整篇重寫,但這是一場賭博,模型很可能在修正這段的同時,連帶把原本寫得不錯的其他段落也改壞了。

問題的根源在於,一鍵生成沒有「局部」這個概念。整篇文章是在同一次推理中,以緊密纏繞的上下文一次性生成出來的,你無法只抽換其中一小塊而不牽動其餘部分,因為每一段文字在生成當下,都或多或少參照了前後文的狀態。

回到「連續多日產出系列文章」這個場景,這種牽一髮動全身的風險完全無法承受。如果第 12 天的文章裡有一段程式碼範例出錯,而這篇文章又被後面第 15 天、第 20 天的文章引用或呼應,重寫第 12 天的內容就可能連帶影響到已經寫好的後續文章之間的一致性。對於需要連續 30 天以上穩定產出的系列而言,任何一天出錯,都可能牽動整個系列的一致性,這正好呼應了前一小節已經鋪墊的「系列規模放大問題」這條線。

四大致命傷的共同病灶

把四個致命傷攤開來並列,會發現四者共享同一個架構性問題,只是分別以四種不同的形式表現出來。

致命傷 根源 對長篇系列文章的影響
注意力稀釋 宏觀邏輯推理與微觀細節查證被塞進同一次生成 結構完整但程式碼與技術細節站不住腳
內容漂移 長文本生成中前段內容的權重隨長度增加而被稀釋 單篇語氣前後不一,35 天下來風格更難收斂
事實幻覺 完全依賴訓練記憶,沒有查證過時知識點的步驟 程式碼與指令用語氣篤定的方式輸出錯誤資訊
零容錯結構 整篇文章在單次推理中以緊密纏繞的上下文生成 局部錯誤只能整篇重寫,牽動系列整體一致性

四個致命傷共同的病灶,在於一鍵生成把「寫一篇好文章」這件事簡化成了「生成一段文字」,但技術寫作實際運作的方式遠比這複雜。一位工程師在撰寫技術文章時,會不自覺地在多種角色之間切換,先像編輯一樣規劃結構,再像工程師一樣查證細節、動手寫程式碼,寫完之後又切換成挑剔讀者的視角重新審視一遍。這是一個多階段、多角色協作的過程,遠遠超出一次性文字輸出所能承載的範圍。

這四個問題也不是各自獨立存在、互不干擾,它們會互相加乘。文章越長、系列篇數越多,損害呈現的是指數級放大,而非線性疊加。這也是為什麼一鍵生成拿來寫一篇短篇貼文尚可勉強使用,但一旦拉長到 35 天的技術系列文章,就會徹底崩潰。

解方的方向,而非解方的細節

問題已經拆解清楚,解方的方向其實可以直接從病灶推導出來。既然問題出在把多重角色硬塞進單一次生成,解方就是把這些角色拆分成獨立的 Agent,讓每一個 Agent 只面對單一且明確的認知任務。

拆分之後,四個致命傷可以逐一對應到緩解的方向。注意力稀釋,因為每個 Agent 面對的任務單一而不再需要來回切換,這個問題自然消失;內容漂移,可以透過額外的機制在生成過程中持續校正;事實幻覺,可以交給專職查證的環節去處理;零容錯結構造成的局部錯誤,也只需要重跑對應的那一個 Agent,不會牽動其他已經完成的部分。這幾項映射目前只需要記住方向,不需要展開細節。

至於具體要拆出哪些角色,每個角色的職責邊界要如何劃定,這些問題留到後面的文章再揭曉。今天要確立的只有一個方向性結論:長篇技術文章的創作過程,需要被拆分成多個角色分工處理,而非硬塞進一次推理裡。

小結:從架構問題到思維問題

拆分成多個 Agent,解決的是「誰來做」的問題。但這裡還藏著一個更根本、尚未被回答的問題,拆分之後,「先做什麼」的順序要怎麼決定?

如果每一個 Agent 依然沿用「先餵資料、再指望 AI 自己整理出重點」的舊習慣,那麼即使角色拆得再細,混亂也只是從一個地方搬到另一個地方,沒有被真正解決。一個只會盲目彙整資料的規劃角色,和一個只會盲目彙整資料的一鍵生成模型,本質上落入了同一種陷阱。

這正是接下來要處理的核心問題。在《Day 02:產出優先思維,先定義規格再動筆》中,我們會正式介紹這套系統背後真正的核心心法,先定義讀者、論點與產出規格,再回推需要拉取哪些資料,並且說明角色分工若沒有搭配這個心法,依然會重蹈輸入優先的舊習慣。至於具體要拆出哪些角色、每個角色的職責邊界如何劃定,則要留到再下一篇才會正式揭曉。


上一篇
Day 00:用 AI Agent 撰寫長篇技術系列文章
下一篇
Day 02:產出優先思維,先定義規格再動筆
系列文
用 AI Agent 撰寫長篇技術系列文章4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言